package com.scau.RBAC.dao.factory;

import com.scau.RBAC.dao.PermissionDao;
import com.scau.RBAC.dao.RoleDao;
import com.scau.RBAC.dao.RolePermissionDao;
import com.scau.RBAC.dao.UserDao;
import com.scau.RBAC.dao.UserRoleDao;
import com.scau.RBAC.dao.impl.PostgreSqlPermissionDao;
import com.scau.RBAC.dao.impl.PostgreSqlRoleDao;
import com.scau.RBAC.dao.impl.PostgreSqlRolePermissionDao;
import com.scau.RBAC.dao.impl.PostgreSqlUserDao;
import com.scau.RBAC.dao.impl.PostgreSqlUserRoleDao;

/**
 * PostgreSQL数据库的具体DAO工厂实现
 */
public class PostgreSqlDaoFactory implements DaoFactory {
    @Override
    public UserDao getUserDao() {
        return new PostgreSqlUserDao();
    }

    @Override
    public RoleDao getRoleDao() {
        return new PostgreSqlRoleDao();
    }

    @Override
    public PermissionDao getPermissionDao() {
        return new PostgreSqlPermissionDao();
    }

    @Override
    public UserRoleDao getUserRoleDao() {
        return new PostgreSqlUserRoleDao();
    }

    @Override
    public RolePermissionDao getRolePermissionDao() {
        return new PostgreSqlRolePermissionDao();
    }
}